home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / internet-tools / connect-line / cl / docs / cl_rexx.dok < prev   
Encoding:
Text File  |  1996-02-08  |  55.8 KB  |  2,178 lines

  1. Connectline cl_rexx.library, Copyright 1995 by Mathias Mischler
  2. ===============================================================
  3.  
  4. Dokumentation erstellt von Mathias Mischler, bearbeitet von Ralf Ramge.
  5.  
  6.  
  7.  
  8. Einführung:
  9. -----------
  10.  
  11. Die Connectline cl_rexx.library stellt  ein  mächtiges  Werkzeug  dar,  mit
  12. welchem Sie leistungsfähige ARexx-Skripte für die Wartung Ihres Systems und
  13. die Onlineunterstützung der User erstellen können.
  14.  
  15. Diese Dokumentation erläutert sämtliche Funktionen der  cl_rexx.library  in
  16. thematisch  zusammengehörigen  Kapiteln.  Folgende  Bereiche werden von der
  17. cl_rexx.library unterstützt:
  18.  
  19.       1. Allgemeine Funktionen
  20.       2. Befehle für Zugriffe auf Brettdaten
  21.       3. Befehle für Zugriffe auf Userdaten
  22.       4. Befehle für Zugriffe auf Systeme
  23.       5. Funktionen für Onlinebefehle
  24.       6. Befehle für Zugriffe auf Nachrichten
  25.       7. Befehle für Zugriffe auf die Ports
  26.       8. Befehle zum Auslesen von Defaultpfaden
  27.  
  28.  
  29.  
  30. Funktionstypen der cl_rexx.library
  31. ----------------------------------
  32.  
  33. Die  Funktionen  der  cl_rexx.library  sind  verschiedenen   Funktionstypen
  34. zugeordnet und ihre Zugehörigkeit ist an folgenden Prefixen erkennbar:
  35.  
  36. CLGET... - Liefert Wert von Connectline
  37. CLSET... - Setzt Wert bei Connectline
  38. CLIS...  - Abfragen von Flags, Wert immer "1" (wahr) oder "0" (falsch).
  39. CLONL... - Macht Ein-/Ausgaben in der Shell. Je nach Funktion wird ein Wert
  40.            zurückgeliefert.
  41.  
  42.  
  43.  
  44.  
  45. 1. Allgemeine Funktionen:
  46. -------------------------
  47.  
  48.     o CLInfo()
  49.  
  50.        Testfunktion der cl_rexx.library. Sie liefert die aktuelle
  51.        Versionsnummer und einen Copyrightvermerk zurück.
  52.  
  53.  
  54.     o CLGET_OwnSystemName()
  55.  
  56.        Diese Funktion liefert den eigenen Systemnamen ohne die Domainan-
  57.        gabe zurück.
  58.  
  59.         Beispiel:
  60.  
  61.          systemname=CLGET_OwnSystemName()
  62.          say systemname
  63.  
  64.  
  65.     o CLGET_OwnSystemAddress()
  66.  
  67.        Diese Funktion dient dem  Ermitteln  des  eigenen  Systemnamens  inkl.
  68.        der Domainangabe. Es wird immer die Hauptdomain zurückgegeben, auch
  69.        wenn das System an mehreren Domains teilnimmt.
  70.  
  71.         Beispiel:
  72.  
  73.          /* Ermitteln der Systemadresse und Zerlegen in System- und
  74.             Domainname                                               */
  75.  
  76.          adresse=CLGET_OwnSystemAddress()
  77.          system=left(adresse,pos('.',adresse)-1)
  78.          domain=right(adresse,length(adresse)-pos('.',adresse))
  79.          say 'Systemname:'system
  80.          say 'Domainname:'domain
  81.  
  82.  
  83.     o CLGET_GroupName(<gruppennr>)
  84.  
  85.        Mit dieser Funktion erhält man den Gruppennamen von <gruppennr> zurück.
  86.        Die Übergabe eines Parameters > 0 ist zwingend erforderlich. Ist für
  87.        <gruppennr> kein Gruppenname spezifiziert, wird ein Leerstring zurück-
  88.        gegeben.
  89.  
  90.  
  91.         Beispiel:
  92.  
  93.          say CLGET_GroupName(1)
  94.  
  95.  
  96.     o CLGET_TransferList(<variable>)
  97.  
  98.        Diese Funktion liefert die Anzahl der eingestellten Transferprotokolle
  99.        zurück. Bei dem Parameter <variable> handelt es sich um den Namen einer
  100.        STEM-Variablen, welche nach erfolgreichem Aufruf der Funktion die Namen
  101.        der Protokolle enthält. Erster Index ist 0, letzter Index ist <Rückgabe-
  102.        wert>-1.
  103.  
  104.  
  105.     o CLGET_PackerList(<variable>)
  106.  
  107.        Diese Funktion liefert die Anzahl der eingestellten Packer zurück. Bei
  108.        dem Parameter <variable> handelt es sich um den Namen einer STEM-Varia-
  109.        blen, welche nach erfolgreichem Aufruf der Funktion die Namen der Packer
  110.        enthält. Erster Index ist 0, letzter Index ist <Rückgabewert>-1.
  111.  
  112.  
  113.     o CL_SendMailFull (<absender>, <empfänger>, <sourcefile>,
  114.                        <commentfile>, <shortcomment>. <subject>,
  115.                        <contenttype>, <sortinpri>)
  116.  
  117.        Diese Funktion dient dem externen Verschicken von Nachrichten. Siehe
  118.        auch CLONL_SendMail().
  119.  
  120.         Parameter:
  121.  
  122.          absender   - Username des Absenders. Es wird nicht geprüft, ob
  123.                       der User im System existiert. System- und Domainan-
  124.                       gabe werden automatisch ersetzt, der Realname bleibt
  125.                       erhalten.
  126.  
  127.          empfänger  - Empfänger der Nachricht.
  128.  
  129.          sourcefile - Pfad und Name des zu verschickenden Textes/Files.
  130.  
  131.          commentfile- Parameter mit Pfad und Name des lagen Kommentars
  132.                       (KOM:-Header). Soll kein langer Kommentar in die
  133.                       Mail eingefügt werden, ist ein Leerstring zu über-
  134.                       geben.
  135.  
  136.          shortcomment-Angabe des kurzen Kommentars (ZUSAMMENFASSUNG:-
  137.                       Header). Wird als String übergeben, ist dieser
  138.                       Header nicht gewünscht, erfolgt die Übergabe eines
  139.                       Leerstrings.
  140.  
  141.          subject    - String mit dem Betreff der Nachricht.
  142.  
  143.          contenttype- Soll die Nachricht als Binärfile verschickt werden,
  144.                       geben sie hier 'BIN' an, ansonsten 'TEXT'.
  145.  
  146.          sortinpri  - Priorität der Mail. Sie beeinflusst die Reihenfolge,
  147.                       in welcher der Sorter die vorliegenden Puffer bear-
  148.                       beitet. Höchste Priorität (Eilmail) ist 'A'.
  149.  
  150.         Beispiel:
  151.  
  152.          cl_sendmailfull(test,root,'s:startup-sequence',,,'subject',TEXT,'A')
  153.  
  154.          /* Verschickt das File s:startup-sequence als Textnachricht an den
  155.          User 'root'. Als Absender wird der User 'test' angegeben. Der Be-
  156.          treff der Nachricht lautet 'subject', die Nachricht hat höchste
  157.          Priorität. Langer und kurzer Kommentar werden nicht gesetzt.    */
  158.  
  159.  
  160.     o CL_LogAdd(<priorität>,<ID>,<text>)
  161.  
  162.        Fügt einen Eintrag ins Logfile von Connectline 5.0 ein.
  163.  
  164.        Parameter:
  165.  
  166.         priorität - Priorität des Logeintrags (0<=x<=10)
  167.         ID        - Kennung des Prozesses
  168.         text      - Einzutragender Text
  169.  
  170.        Beispiel:
  171.  
  172.         call CL_LogAdd(5,'CL_REXX','Das ist ein Test.')
  173.  
  174.  
  175.     o CL_LogDelete()
  176.  
  177.        Löscht das Logfile.
  178.  
  179.  
  180.     o CL_LogRename(<dateiname>)
  181.  
  182.        Benennt das Logfile in <dateiname> um. Ein eventueller Pfad muß angegeben werden.
  183.  
  184.  
  185.     o CLGET_FileRequest([<pfad>])
  186.  
  187.        Diese Funktion öffnet einen Filerequester und liefert den Namen und Pfad des an-
  188.        gewählten Eintrages zurück. Optional kann mit <pfad> ein Defaultpfad angegeben
  189.        werden. Multiselect ist nicht möglich.
  190.  
  191.  
  192.     o CLGET_FrontScreenName()
  193.  
  194.        Diese Funktion liefert den Namen des vordersten Public Screens zurück.
  195.  
  196.  
  197.     o CL_GetText(<textdatei>,<varname>)
  198.  
  199.         Es wird ein File zeilenweise in eine STEM-Variable eingelesen.
  200.         Die Anzahl der eingelesenen Zeilen wird zurückgegeben.
  201.  
  202.         Parameter:
  203.  
  204.          textdatei - Pfad und Name des einzulesenden Textes
  205.          varname   - Name der STEM-Variable ohne Index
  206.  
  207.         Beispiel:
  208.  
  209.          anzahl=CL_GetText('s:startup-sequence',zeile)
  210.          do x=0 to anzahl-1
  211.             say zeile.x
  212.             end
  213.  
  214.  
  215.     o CL_PutStr(<text>)
  216.  
  217.         Gibt einen Text direkt auf dem Bildschirm aus, es wird kein LF
  218.         ausgeführt.
  219.  
  220.  
  221.  
  222.  
  223. 2. Befehle für Zugriffe auf Brettdaten
  224. ---------------------------------------
  225.  
  226.     Allgemeine Anmerkungen:
  227.     -----------------------
  228.  
  229.     Wenn versucht wird, auf ein nicht existentes Brett zuzugreifen, wird beim
  230.     Lesen generell ein Leerstring "" zurückgegeben, und beim Schreiben False
  231.     "0".
  232.  
  233.     Bretter werden generell so angegeben, wie sie im Bretteditor auftauchen.
  234.     Ein führendes Slash ("/") darf nicht übergeben werden.
  235.  
  236.  
  237.  
  238.  
  239. 2.1 Allgemeine Befehle
  240. ----------------------
  241.  
  242.     o CL_SaveBoardlist()
  243.  
  244.        Speichert die Brettliste.
  245.  
  246.  
  247.     o CL_BoardNew(<brettname>)
  248.  
  249.        Diese Funktion legt ein neues Brett an. Initialisieren Sie dieses Brett
  250.        anschließend mit allen CLSET_BoardX()-Funktionen (siehe Abschnitt 2.3
  251.        und 2.7 in diesem Kapitel), da diese Funktion lediglich Defaultwerte
  252.        vorgibt.
  253.  
  254.        Die Defaultwerte sind:
  255.  
  256.         - Als Pfad wird der Defaultpfad für Bretter eingesetzt, mit der Er-
  257.           gänzung auf diesen Brettnamen.
  258.  
  259.         - Lese- und Schreibzugriff werden auf Level 99 begrenzt.
  260.  
  261.         - Als Brettkommentar wird "Neues Brett (cl_rexx)" eingetragen.
  262.  
  263.         - Das Flag 'Realname' wird auf TRUE gesetzt.
  264.  
  265.        Alle anderen Brettparameter sind entweder 0 oder deaktiviert.
  266.  
  267.         Beispiel:
  268.  
  269.          if (CL_BoardNew('INTERN/TEST') then
  270.              say 'Das Brett /INTERN/TEST wurde angelegt.'
  271.          else
  272.              say 'Es ist ein Fehler aufgetreten!'
  273.  
  274.  
  275.     o CL_BoardDelete(<brettname>)
  276.  
  277.        Das Brett <brettname> wird aus der Brettliste gelöscht.
  278.  
  279.         Beispiel:
  280.  
  281.          if (CL_BoardDelete('INTERN/TEST') then
  282.              say 'Das Brett /INTERN/TEST wurde gelöscht.'
  283.          else
  284.              say 'Das Brett /INTERN/TEST existiert nicht!'
  285.  
  286.  
  287.  
  288.  
  289. 2.2 Befehle zum Auslesen der Brettdaten
  290. ---------------------------------------
  291.  
  292.     o CLGET_BoardList(<varname> [,<pattern>])
  293.  
  294.        Legt eine vollständige Brettliste in der STEM-Variablen <varname> an.
  295.        Der größte Index wird zurückgegeben, der niedrigste Index ist 0. Wird
  296.        ein Muster <pattern> angegeben, so werden nur diese Bretter, die zu
  297.        dem Muster passen, berücksichtigt (z.B. 'CLC/#?').
  298.  
  299.        Parameter:
  300.  
  301.         varname - Bezeichnung der STEM-Variable ohne Index
  302.         pattern - Optionaler Parameter mit Suchmuster
  303.  
  304.        Beispiel:
  305.  
  306.         anzahl1=CLGET_BoardList(alleBretter)
  307.         anzahl2=CLGET_BoardList(alleCLCBretter,'CLC/#?')
  308.         do x = 0 to anzahl1-1
  309.             say 'Brett Nummer 'x': 'alleBretter.x
  310.             end
  311.         do x= 0 to anzahl2-1
  312.             say 'CLC-Brett Nummer 'x': 'alleCLCBretter.x
  313.             end
  314.  
  315.  
  316.     o CLIS_BoardExists(<brettname>)
  317.  
  318.        Diese Funktion testet, ob das Brett <brettname> in der Brettliste
  319.        existiert.
  320.  
  321.         Beispiel:
  322.  
  323.          if (CLIS_BoardExists('INTERN/TEST') then
  324.              say '/INTERN/TEST ist ein vorhandenes Brett.'
  325.          else
  326.              say '/INTERN/TEST ist ein unbekanntes Brett.'
  327.  
  328.  
  329.     o CLGET_BoardNumberOf()
  330.  
  331.        Liefert die Anzahl der eingetragenen Bretter zurück.
  332.  
  333.  
  334.     o CLGET_BoardNext(<brettname>)
  335.  
  336.        Diese Funktion gibt den Namen des Brettes zurück, welches <brettname>
  337.        folgt. Möchte man das erste Brett der gesamten Brettliste ermitteln,
  338.        übergibt man als Parameter einen Leerstring. Ist das letzte Brett der
  339.        Liste erreicht, wird von der Funktion ein Leerstring zurückgegeben.
  340.  
  341.         Beispiel:
  342.  
  343.          /* Einlesen der gesamten Brettliste in eine STEM-Variable */
  344.  
  345.          x=CLGET_BoardNumberOf()
  346.          brett.1=CLGET_BoardNext()
  347.          do i=2 to x
  348.              brett.i=CLGET_BoardNext(brett.(i-1))
  349.              end
  350.  
  351.  
  352.  
  353.     o CLGET_BoardPrevious(<brettname>)
  354.  
  355.        Diese Funktion gibt den Namen des Brettes zurück, welches <brettname>
  356.        vorhergeht. Möchte man das letzte Brett der gesamten Brettliste
  357.        ermitteln, übergibt man als Parameter einen Leerstring. Ist das erste
  358.        Brett der Liste erreicht, wird von der Funktion ein Leerstring zurück-
  359.        gegeben.
  360.  
  361.         Beispiel:
  362.  
  363.          /* Einlesen der gesamten Brettliste in eine STEM-Variable */
  364.  
  365.          x=CLGET_BoardNumberOf()
  366.          brett.x=CLGET_BoardPrevious()
  367.          do i=(x-1) to 1 by -1
  368.              brett.i=CLGET_BoardPrevious(brett.(i+1))
  369.              end
  370.  
  371.  
  372.     o CLGET_BoardPrefix(<prefix>)
  373.  
  374.        Diese Funktion versucht, <prefix> zu einem existierenden Brettnamen
  375.        zu ergänzen.
  376.  
  377.         Beispiel:
  378.  
  379.          say 'CLGET_BoardPrefix('CLC/')
  380.          /* Als Ergebnis wird das erste Brett der Hierarchie /CLC zurück-
  381.          gegeben. */
  382.  
  383.  
  384.     o CLGET_BoardNewsgroupName(<brettname>)
  385.  
  386.        Liefert den Newsgroupnamen dieses Brettes (rfc-Modul).
  387.  
  388.  
  389.     o CLGET_BoardFTSName(<brettname>)
  390.  
  391.        Liefert den FTS-Namen dieses Brettes (FIDO-Modul).
  392.  
  393.  
  394.     o CLGET_BoardPath(<brettname>)
  395.  
  396.        Diese Funktion gibt den Dos-Pfad eines Brettes zurück.
  397.  
  398.  
  399.     o CLGET_BoardAdmin(<brettname>)
  400.  
  401.        Liefert den Usernamen des Brettverwalters des angegebenen Brettes.
  402.  
  403.  
  404.     o CLGET_BoardPri(<brettname>)
  405.  
  406.        Liefert die Mindestpriorität zum Lesen des Brettes.
  407.  
  408.  
  409.     o CLGET_BoardWritePri(<brettname>)
  410.  
  411.        Liefert die Mindestpriorität zum Beschreiben des Brettes.
  412.  
  413.  
  414.     o CLGET_BoardMaxNet(<brettname>)
  415.  
  416.        Gibt die maximale zugelassene Nachrichtengröße in diesem Brett zurück.
  417.  
  418.  
  419.     o CLGET_BoardAbout(<brettname>)
  420.  
  421.        Liefert den Kommentar dieses Brettes.
  422.  
  423.  
  424.     o CLGET_BoardCensor(<brettname>)
  425.  
  426.        Liefert den Usernamen des Zensors dieses Brettes.
  427.  
  428.  
  429.     o CLGET_BoardHoldKB(<brettname>,<maxkb>)
  430.  
  431.        Liefert das maximale Haltevolumen in KB für  den  Cruncher  in  diesem
  432.        Brett.
  433.  
  434.  
  435.     o CLGET_BoardHoldDays(<brettname>,<maxdays>)
  436.  
  437.        Liefert die maximale Haltezeit in Tagen für  den  Cruncher  in  diesem
  438.        Brett.
  439.  
  440.  
  441.     o CLGET_BoardLastWrite(<brettname>)
  442.  
  443.        Liefert den Zeitpunkt zurück, an welchem der letzte Schreibzugriff in
  444.        diesem Brett stattgefunden hat. Es wird ein String mit zwei Worten zu-
  445.        rückgegeben; das erste Wort enthält das Datum im Format DD.MM.YYYY, das
  446.        zweite Wort die Uhrzeit im Format HH:MM:SS.
  447.  
  448.         Beispiel:
  449.  
  450.          /* Ermitteln und zerlegen des letzten Schreibzugriffes im Brett
  451.             /CLC/USER/FRAGEN.                                            */
  452.  
  453.          all=clget_BoardLastWrite('CLC/USER/FRAGEN')
  454.          datum=translate(word(all,1),' ','.')
  455.          zeit=translate(word(all,2),' ','.')
  456.          Tag=word(datum,1); Monat=word(datum,2); Jahr=word(datum,3)
  457.          Stunde=word(zeit,1); Minute=word(zeit,2); Sekunde=word(zeit,3)
  458.  
  459.  
  460.     o CLIS_BoardGroup(<brettname>,<group>)
  461.  
  462.        Diese Funktion dient der Abfrage, ob ein Brett einer bestimmten Gruppe
  463.        angehört.
  464.  
  465.         Parameter:
  466.  
  467.          brettname  - Name des Brettes
  468.          group      - Nummer der Gruppe
  469.  
  470.  
  471.         Beispiel:
  472.  
  473.          /* Heiteres Gruppenraten :-) */
  474.  
  475.          brett='CLC/USER/FRAGEN'
  476.          options prompt 'Ihr Tip: '
  477.          do forever
  478.              pull gruppennr
  479.              select
  480.                  when gruppennr=-1 then leave
  481.                  when ~CLIS_Boardgroup(brett,gruppenr) then do
  482.                      say 'Nein, /CLC/USER/FRAGEN ist nicht in'
  483.                      say 'der Gruppe "'CLGet_GroupName(gruppennr)'"!'
  484.                      end
  485.                  otherwise do
  486.                      say 'Sie haben richtig geraten!'
  487.                      exit
  488.                      end
  489.                  end
  490.              end
  491.  
  492.  
  493.  
  494.  
  495. 2.3 Befehle zum Setzen der Brettdaten
  496. -------------------------------------
  497.  
  498.     Bei Erfolg wird generell '1' zurückgeliefert, bei Mißerfolg '0'.
  499.  
  500.     Beispiel für die Benutzung dieser Funktionen:
  501.  
  502.         if (funktionsaufruf) then
  503.  
  504.             ...     /* Aufruf war erfolgreich */
  505.  
  506.         else
  507.  
  508.             ...     /* Aufruf war nicht erfolgreich */
  509.  
  510.  
  511.  
  512.     o CLSET_BoardNewsgroupName(<brettname>,<ngname>)
  513.  
  514.        Setzt den Newsgroupnamen dieses Brettes (für rfc-Modul).
  515.  
  516.         Parameter:
  517.  
  518.          brettname  - Name des Brettes
  519.          ngname     - gewünschter Newsgroupname
  520.  
  521.  
  522.     o CLSET_BoardFTSName(<brettname>,<ftsname>)
  523.  
  524.        Setzt den FTS-Namen dieses Brettes (für FIDO-Modul).
  525.  
  526.         Parameter:
  527.  
  528.          brettname  - Name des Brettes
  529.          ftsname    - gewünschter Echoname
  530.  
  531.  
  532.     o CLSET_BoardAdmin(<brettname>,<admin>)
  533.  
  534.        Setzt den Brettverwalter des Brettes.
  535.  
  536.         Parameter:
  537.  
  538.          brettname  - Name des Brettes
  539.          admin      - Username des Brettverwalters
  540.  
  541.  
  542.     o CLSET_BoardPri(<brettname>,<pri>)
  543.  
  544.        Setzt die erforderliche Mindestpriorität zum Lesen des Brettes.
  545.  
  546.         Parameter:
  547.  
  548.          brettname  - Name des Brettes
  549.          pri        - Priorität (0<=pri<=99)
  550.  
  551.  
  552.     o CLSET_BoardWritePri(<brettname>,<pri>)
  553.  
  554.        Setzt die erforderliche Mindestpriorität zum Beschreiben des Brettes.
  555.  
  556.         Parameter:
  557.  
  558.          brettname  - Name des Brettes
  559.          pri        - Priorität (0<=pri<=99)
  560.  
  561.  
  562.     o CLSET_BoardMaxNet(<brettname>,<maxnet>)
  563.  
  564.        Setzt die maximal zugelassene Nachrichtengröße des Brettes.
  565.  
  566.         Parameter:
  567.  
  568.          brettname  - Name des Brettes
  569.          maxnet     - Maximallänge in Byte oder 0.
  570.  
  571.  
  572.     o CLSET_BoardAbout(<brettname>,<infotext>)
  573.  
  574.        Setzt den Kommentar dieses Brettes.
  575.  
  576.         Parameter:
  577.  
  578.          brettname  - Name des Brettes
  579.          infotext   - Brettkommentar
  580.  
  581.  
  582.     o CLSET_BoardCensor(<brettname>,<censor>)
  583.  
  584.        Setzt den Zensor dieses Brettes.
  585.  
  586.          Parameter:
  587.  
  588.           brettname - Name des Brettes
  589.           censor    - Username des Zensors
  590.  
  591.  
  592.     o CLSET_BoardHoldKB(<brettname>)
  593.  
  594.        Setzt das maximale Brettvolumen in Kilobyte für den Cruncher.
  595.  
  596.  
  597.     o CLSET_BoardHoldDays(<brettname>)
  598.  
  599.        Setzt die maximale Haltezeit in Tagen für den Cruncher.
  600.  
  601.  
  602.     o CLSET_BoardGroup(<brettname>,<gruppennr> [,<flag>])
  603.  
  604.        Trägt ein Brett in eine Gruppe ein oder trägt es aus einer Gruppe aus.
  605.  
  606.         Parameter:
  607.  
  608.          brettname  - Name des Brettes
  609.          gruppennr  - Nummer der Gruppe
  610.          flag       - Optionales Flag; ist dies angegeben und hat den Wert 0,
  611.                       wird das Brett aus der Gruppe ausgetragen. Fehlt dieses
  612.                       Flag beim Aufruf, wird ein Eintragen in die Gruppe ver-
  613.                       sucht.
  614.  
  615.  
  616.         Beispiel:
  617.  
  618.             if (CLSET_BoardGroup('CLC/USER/FRAGEN',1) then do
  619.                 say '/CLC/USER/FRAGEN in Gruppe 1 eingetragen!'
  620.  
  621.                 call CLSET_BoardGroup('CLC/USER/FRAGEN',1,'0')
  622.                 say '/CLC/USER/FRAGEN aus Gruppe 1 ausgetragen!'
  623.                 end
  624.  
  625.  
  626.  
  627.  
  628. 2.4 Befehle zum Auslesen und Verändern der Verteilerliste
  629. ---------------------------------------------------------
  630.  
  631.  
  632.     o CLGET_BoardBoxList(<brettname>, <varname>)
  633.  
  634.        Liefert die Anzahl der Systeme zurück, die das Brett <brettname> be-
  635.        stellt haben. Die Namen der Systeme werden in der STEM-Variablen
  636.        <varname> abgelegt. Das erste System ist in der Variablen <varname>.0
  637.        zu finden.
  638.  
  639.         Beispiel:
  640.  
  641.          options prompt "Gewünschtes Brett:"
  642.          pull brett
  643.          anzahl=CLGet_BoardBoxList(brett,system)
  644.          say anzahl' Systeme im Verteiler von 'brett':'
  645.          do x=0 to anzahl-1
  646.             say ' 'system.x
  647.             end
  648.  
  649.  
  650.      o CLGET_BoardNetCount(<brettname>)
  651.  
  652.         Liefert die Anzahl der im Verteiler des Brettes <brettname> eingetragenen
  653.         Systeme.
  654.  
  655.         Hinweis: Wenn Sie nicht nur an der Zahl der Systeme im Verteiler interes-
  656.         siert sind, sondern den Verteilerstring mittels CLGET_BoardBoxList() so-
  657.         wieso auslesen, erhalten sie die Anzahl über die interne ARexx-Funktion
  658.         words() auf einem schnelleren Weg.
  659.  
  660.  
  661.      o CLSET_BoardAddBox(<brettname>,<system>)
  662.  
  663.         Fügt ein neues System in die Verteilerliste des Brettes ein. Es
  664.         wird nicht überprüft, ob das System in der Systemliste eingetragen
  665.         ist.
  666.  
  667.          Parameter:
  668.  
  669.           brettname  - Name des Brettes
  670.           system     - Name des Systems/des Points.
  671.  
  672.  
  673.     o CLSET_BoardDelBox(<brettname>,<system>)
  674.  
  675.        Löscht ein System aus der Verteilerliste des Brettes. Es wird nicht
  676.        überprüft. ob das System in der Systemliste eingetragen ist.
  677.  
  678.         Parameter:
  679.  
  680.          brettname  - Name des Brettes
  681.          system     - Name des Systems/des Points.
  682.  
  683.  
  684.  
  685.  
  686. 2.5 Befehle zum Testen der Zugriffsberechtigungen
  687. -------------------------------------------------
  688.  
  689.  
  690.     o CLGET_BoardValidateUser(<brettname>,<user>)
  691.  
  692.        Überprüft, ob und wie der User Zugriff auf das Brett hat. Diese
  693.        Funktion gibt einen der folgenden Strings zurück:
  694.  
  695.         NONE        User hat keinerlei Zugriff.
  696.         ACCESS      User hat Zugriff.
  697.         CENSORED    User hat Zugriff und wird zensiert.
  698.         ISADMIN     User hat Zugriff und ist Brettverwalter.
  699.         ISCENSOR    User hat Zugriff und ist Zensor.
  700.  
  701.  
  702.     o CLGET_BoardValidateBox(<brettname>,<system>)
  703.  
  704.        Überprüft, ob das System Zugriff auf das Brett hat.
  705.  
  706.         Beispiel:
  707.  
  708.          if (CLGET_BoardValidateBox(brett,system)
  709.              say upper(system)' hat Zugriff auf 'brett'!'
  710.          else
  711.              say upper(system)' hat *keinen* Zugriff auf 'brett'!'
  712.  
  713.  
  714.  
  715.  
  716. 2.6 Befehle zum Abfragen von Brettflags
  717. ---------------------------------------
  718.  
  719.     Ist das jeweilige Flag gesetzt, liefern die Funktionen '1' zurück,
  720.     ist es nicht gesetzt, eine '0'.
  721.  
  722.  
  723.     o CLIS_BoardBin(<brettname>)
  724.  
  725.        Abfrage, ob Binärnachrichten im Brett erlaubt sind.
  726.  
  727.  
  728.     o CLIS_BoardText(<brettname>)
  729.  
  730.        Abfrage, ob Textnachrichten im Brett erlaubt sind.
  731.  
  732.  
  733.     o CLIS_BoardMapsAllowed(<brettname>)
  734.  
  735.        Abfrage, ob per Maps auf das Brett zugegriffen werden kann.
  736.  
  737.  
  738.     o CLIS_BoardAutoEntry(<brettname>)
  739.  
  740.        Abfrage, ob das Brett automatisch eingetragen wurde.
  741.  
  742.  
  743.     o CLIS_BoardRealname(<brettname>)
  744.  
  745.        Abfrage, ob im Brett ein Realnamenzwang besteht.
  746.  
  747.  
  748.     o CLIS_BoardDLRatio(<brettname>)
  749.  
  750.        Abfrage, ob im Brett eine Up-/Downloadratio aktiv ist.
  751.  
  752.  
  753.     o CLIS_BoardAutoRemove(<brettname>)
  754.  
  755.        Abfrage, ob das Brett automatisch ausgetragen wird.
  756.  
  757.  
  758.     o CLIS_BoardExternal(<brettname>)
  759.  
  760.        Abfrage, ob es sich um ein extern ausgelagertes Brett handelt.
  761.  
  762.  
  763.     o CLIS_BoardRouteOnly(<brettname>)
  764.  
  765.        Abfrage, ob das Brett nur durchgeroutet wird.
  766.  
  767.  
  768.     o CLIS_BoardNoScan(<brettname>)
  769.  
  770.        Abfrage, ob bei dem Brett das Datum konstant ist (z.B. CD-ROM's).
  771.  
  772.  
  773.  
  774.  
  775. 2.7 Befehle zum Setzen von Brettflags
  776. -------------------------------------
  777.  
  778.     Bei den Funktionen dieses Abschnittes sind die zu übergebenden Parameter
  779.     von Funktion zu Funktion identisch und haben folgenden Inhalt:
  780.  
  781.         Parameter:
  782.  
  783.          brettname  - Name des Brettes
  784.          flag       - '0' bedeutet, das Flag wird gelöscht (FALSE)
  785.                       '1' bedeutet, das Flag wird gesetzt (TRUE)
  786.  
  787.  
  788.     o CLSET_BoardBin(<brettname>,<flag>)
  789.  
  790.        Flag, ob Binärnachrichten im Brett erlaubt sind.
  791.  
  792.  
  793.     o CLSET_BoardText(<brettname>,<flag>)
  794.  
  795.        Flag, ob Textnachrichten im Brett erlaubt sind.
  796.  
  797.  
  798.     o CLSET_BoardAutoEntry(<brettname>,<flag>)
  799.  
  800.        Flag, ob das Brett wie ein automatisch eingetragenes Brett be-
  801.        handelt werden soll.
  802.  
  803.  
  804.     o CLSET_BoardRealname(<brettname>,<flag>)
  805.  
  806.        Flag, ob im Brett ein Realnamenzwang existieren soll.
  807.  
  808.  
  809.     o CLSET_BoardDLRatio(<brettname>,<flag>)
  810.  
  811.        Flag, ob im Brett eine Up-/Downloadratio gelten soll.
  812.  
  813.  
  814.     o CLSET_BoardAutoRemove(<brettname>,<flag>)
  815.  
  816.        Flag, ob das Brett automatisch ausgetragen werden soll.
  817.  
  818.  
  819.     o CLSET_BoardExternal(<brettname>,<flag>)
  820.  
  821.        Setzt je nach Flag, ob das Brett extern ausgelagert ist.
  822.  
  823.  
  824.     o CLSET_BoardRouteOnly(<brettname>,<flag>)
  825.  
  826.        Flag, ob das Brett nur geroutet wird.
  827.  
  828.  
  829.     o CLSET_BoardNoScan(<brettname>,<flag>)
  830.  
  831.        Flag, ob bei dem Brett ein konstantes Datum herrschen soll.
  832.  
  833.  
  834.  
  835.  
  836. 3. Befehle für Zugriff auf Userdaten
  837. ------------------------------------
  838.  
  839.     Allgemeine Anmerkungen:
  840.     -----------------------
  841.  
  842.     Wenn versucht wird, auf einen nicht existenten User zuzugreifen, wird beim
  843.     Lesen generell ein Leerstring zurückgegeben, beim Schreiben FALSE ('0').
  844.  
  845.     Es ist zwar möglich, auf User zuzugreifen, die sich gerade online im Sys-
  846.     tem aufhalten, aber es wird davon abgeraten. Dies liegt darin begründet,
  847.     daß beim Logoff des Users seine Userdaten wieder aus dem RAM gespeichert
  848.     werden und Änderungen mittels cl_rexx hierdurch hinfällig werden.
  849.  
  850.  
  851.  
  852.  
  853. 3.1 Allgemeine Befehle
  854. ----------------------
  855.  
  856.  
  857.     o CLIS_UserExists(<username>)
  858.  
  859.        Diese Funktion liefert als Rückgabewert TRUE, wenn <username>
  860.        eingetragener User ist, FALSE, wenn dies nicht der Fall ist.
  861.  
  862.  
  863.     o CLIS_UserPoint(<username>)
  864.  
  865.        Liefert TRUE wenn der User einen Point in Ihrem System hat, ist
  866.        dies nicht der Fall, wird FALSE zurückgegeben.
  867.  
  868.  
  869.     o CL_UserNew(<username>,<passwort>)
  870.  
  871.        Es wird ein neuer User unter <username> mit dem Passwort <passwort>
  872.        eingetragen. Bei Erfolg wird '0' zurückgegeben, ansonsten '1'. Da-
  873.        nach sollten mit den CLSET_UserX()-Befehlen (siehe Abschnitt 3.3)
  874.        alle weiteren Daten ergänzt werden.
  875.  
  876.  
  877.     o CLGET_UserNumberOf()
  878.  
  879.        Diese Funktion gibt die Anzahl aller eingetragenen User zurück.
  880.  
  881.  
  882.     o CLGET_Username(<index>)
  883.  
  884.        Diese Funktion liefert den Usernamen des Users <index> zurück.
  885.  
  886.         Beispiel:
  887.  
  888.          /* Erstellen einer Liste aller User */
  889.  
  890.          anz=CLGET_UserNumberOf()
  891.          do x=1 to anz
  892.             user.x=CLGET_Username(x)
  893.          end
  894.  
  895.  
  896.  
  897.  
  898. 3.2 Befehle zum Auslesen der Userdaten
  899. --------------------------------------
  900.  
  901.     o CLGET_UserPriority(<username>)
  902.  
  903.        Liefert die Priorität des Users zurück.
  904.  
  905.  
  906.     o CLGET_UserPath(<username>)
  907.  
  908.        Liefert den Pfad des Users zurück.
  909.  
  910.  
  911.     o CLIS_UserGroup(<username>,<gruppennr>)
  912.  
  913.        Liefert '1', wenn der User in der Gruppe <gruppennr> ist, sonst '0'.
  914.  
  915.  
  916.     o CLGET_UserRealname(<username>)
  917.  
  918.        Liefert den Realnamen des Users zurück.
  919.  
  920.  
  921.     o CLGET_UserAddress(<username>)
  922.  
  923.        Liefert die Adresse des Users zurück.
  924.  
  925.  
  926.     o CLGET_UserTelephone(<username>)
  927.  
  928.        Liefert die Telefonnummer des Users zurück.
  929.  
  930.  
  931.     o CLGET_UserSysopInfo(<username>)
  932.  
  933.        Liefert die Sysopinfo des Users zurück.
  934.  
  935.  
  936.     o CLGET_UserMessage(<username>)
  937.  
  938.        Liefert Userinfo des Users zurück.
  939.  
  940.  
  941.     o CLGET_UserCopyTo(<username>)
  942.  
  943.        Liefert den Vertreter des Users zurück.
  944.  
  945.     o CLGET_UserTerminal(<username>)
  946.  
  947.        Liefert entweder "ANSI", "VT100" oder "TTY" zurück, je nach Ter-
  948.        minaleinstellung des Users.
  949.  
  950.  
  951.     o CLGET_UserLanguage(<username>)
  952.  
  953.        Liefert Spracheinstellung des Users zurück.
  954.  
  955.  
  956.     o CLGET_UserKeyboard(<username>)
  957.  
  958.        Liefert den eingestellten Zeichensatz zurück ("IBM" oder "ISO").
  959.  
  960.  
  961.     o CLGET_UserNumberOfCalls(<username>)
  962.  
  963.        Gibt die Gesamtzahl aller Anrufe des Users zurück.
  964.  
  965.  
  966.     o CLGET_UserTimeout(<username>)
  967.  
  968.        Liefert den Zeitlimit des Users zurück (Minuten).
  969.  
  970.  
  971.     o CLGET_UserCredit(<username>)
  972.  
  973.        Liefert den erlaubten Kredit für den User zurück.
  974.  
  975.  
  976.     o CLGET_UserLines(<username>)
  977.  
  978.        Liefert die eingestellte Zeilenzahl des Users zurück.
  979.  
  980.  
  981.     o CLGET_UserProtocol(<username>)
  982.  
  983.        Liefert das eingestellte Übertragungsprotokoll zurück.
  984.  
  985.  
  986.     o CLGET_UserMaxKB(<username>)
  987.  
  988.        Liefert das maximale Haltevolumen in KB des Postfaches des Users für
  989.        den Cruncher zurück.
  990.  
  991.  
  992.     o CLGET_UserMaxDays(<username>)
  993.  
  994.        Liefert die maximale Haltezeit in Tagen des Postfaches des Users für
  995.        den Cruncher zurück.
  996.  
  997.  
  998.     o CLGET_UserLastCall(<username>)
  999.  
  1000.        Liefert den Zeitpunkt des letzten Anrufes des Users zurück. Es wird
  1001.        ein String mit 2 Worten zurückgegeben; das erste Wort beinhaltet das
  1002.        Datum im Format DD.MM.YYYY, das zweite die Uhrzeit im Format HH:MM:SS.
  1003.  
  1004.  
  1005.     o CLGET_UserUploads(<username>)
  1006.  
  1007.        Liefert die Uploads des Users in Kilobyte zurück.
  1008.  
  1009.  
  1010.     o CLGET_UserDownloads(<username>)
  1011.  
  1012.        Liefert Downloads des Users in Kilobyte zurück.
  1013.  
  1014.  
  1015.     o CLGET_UserFreeFiles(<username>)
  1016.  
  1017.        Liefert die freien Files des Users zurück.
  1018.  
  1019.     o CLGET_UserFreeKByte(<username>)
  1020.  
  1021.        Liefert den Downoladfreiraum des Users zurück.
  1022.  
  1023.     o CLGET_UserRate(<username>)
  1024.  
  1025.        Liefert die Up-/Downloadratio des Users zurück.
  1026.  
  1027.  
  1028.     o CLGET_UserPointname(<username>)
  1029.  
  1030.        Liefert den Pointnamen des Users zurück.
  1031.  
  1032.  
  1033.  
  1034.  
  1035. 3.3 Befehle zum Setzen der Userdaten
  1036. ------------------------------------
  1037.  
  1038.     Bei Erfolg wird generell '1' zurückgeliefert, bei Mißerfolg '0'.
  1039.  
  1040.  
  1041.     o CLSET_UserPassword(<username>,<passwort>)
  1042.  
  1043.        Setzt für einen User das Passwort.
  1044.  
  1045.        Parameter:
  1046.  
  1047.         username - Username des Users
  1048.         passwort - Passwort des Users
  1049.  
  1050.  
  1051.     o CLSET_UserPriority(<username>,<priorität>)
  1052.  
  1053.        Setzt die Priorität eines Users.
  1054.  
  1055.        Parameter:
  1056.  
  1057.         username - Username des Users
  1058.         priorität- Priorität (0<=x<=99)
  1059.  
  1060.  
  1061.     o CLSET_UserPath(<username>,<pfad>)
  1062.  
  1063.        Setzt den Pfad des Users.
  1064.  
  1065.        Parameter:
  1066.  
  1067.         username - Username des Users
  1068.         pfad     - gültiger DOS-Pfad des Userverzeichnisses
  1069.  
  1070.  
  1071.     o CLSET_UserGroup(<username>,<gruppennr> [,<flag>])
  1072.  
  1073.        Trägt den User in eine Gruppe ein bzw. aus.
  1074.  
  1075.        Parameter:
  1076.  
  1077.         username - Username des Users
  1078.         gruppennr- Nummer der Gruppe
  1079.         flag     - optionales Flag; ist es '0', wird der User aus dieser
  1080.                    Gruppe ausgetragen. Ist es '1' oder fehlt es gänzlich,
  1081.                    wird ein Eintragen in die angegebene Gruppe versucht.
  1082.  
  1083.  
  1084.     o CLSET_UserRealname(<username>,<realname>)
  1085.  
  1086.        Setzt den Realnamen des Users.
  1087.  
  1088.        Parameter:
  1089.  
  1090.         username - Username des Users
  1091.         realname - Realname des Users
  1092.  
  1093.  
  1094.     o CLSET_UserAddress(<username>,<adresse>)
  1095.  
  1096.        Setzt die Adresse des Users.
  1097.  
  1098.        Parameter:
  1099.  
  1100.         username - Username des Users
  1101.         adresse  - Adresse des Users
  1102.  
  1103.  
  1104.     o CLSET_UserTelephone(<username>,<telefon>)
  1105.  
  1106.        Setzt die Telefonnummer des Users.
  1107.  
  1108.        Parameter:
  1109.  
  1110.         username - Username des Users
  1111.         telefon  - Telefonnummer des Users (String)
  1112.  
  1113.  
  1114.     o CLSET_UserSysopInfo(<username>,<sysopinfo>)
  1115.  
  1116.        Setzt die Sysopinfo des Users.
  1117.  
  1118.        Parameter:
  1119.  
  1120.         username - Username des Users
  1121.         sysopinfo- Informationstext
  1122.  
  1123.  
  1124.     o CLSET_UserMessage(<username>,<message>)
  1125.  
  1126.        Setzt die Userinfo des Users.
  1127.  
  1128.        Parameter:
  1129.  
  1130.         username - Username des Users
  1131.         unserinfo- Informationstext
  1132.  
  1133.  
  1134.     o CLSET_UserCopyTo(<username>,<vertreter>)
  1135.  
  1136.        Setzt den Vertreter des Users.
  1137.  
  1138.        Parameter:
  1139.  
  1140.         username - Username des Users
  1141.         vertreter- Vertreter des Users
  1142.  
  1143.  
  1144.     o CLSET_UserTerminal(<username>,<terminal>)
  1145.  
  1146.        Setzt Terminaleinstellung des Users.
  1147.  
  1148.         Parameter:
  1149.  
  1150.          username - Username des Users
  1151.          terminal - Entweder 'ANSI', 'VT100' oder 'TTY'
  1152.  
  1153.  
  1154.     o CLSET_UserLanguage(<username>,<sprache>)
  1155.  
  1156.        Setzt die Spracheinstellung des Users.
  1157.  
  1158.        Parameter:
  1159.  
  1160.         username - Username des Users
  1161.         sprache  - Sprache des Users (Default: 'DEUTSCH')
  1162.  
  1163.  
  1164.     o CLSET_UserKeyboard(<username>,<zeichensatz>)
  1165.  
  1166.        Setzt den Zeichensatz des Users.
  1167.  
  1168.         Parameter:
  1169.  
  1170.          username    - Username des Users
  1171.          zeichensatz - Entweder "IBM" oder "ISO"
  1172.  
  1173.  
  1174.     o CLSET_UserTimeout(<username>,<timeout>)
  1175.  
  1176.        Setzt den Zeitlimit des Users.
  1177.  
  1178.         Parameter:
  1179.  
  1180.          username - Username des Users
  1181.          timeout  - Zeitlimit des Users in Minuten
  1182.  
  1183.  
  1184.     o CLSET_UserAccount(<username>,<konto>)
  1185.  
  1186.        Setzt den Kontostand des Users.
  1187.  
  1188.         Parameter:
  1189.  
  1190.          username - Username des Users
  1191.          konto    - Kontostand des Users
  1192.  
  1193.  
  1194.     o CLSET_UserCredit(<username>,<kredit>)
  1195.  
  1196.        Setzt den erlaubten Kredit des Users.
  1197.  
  1198.         Parameter:
  1199.  
  1200.          username - Username des Users
  1201.          kredit   - Kredit
  1202.  
  1203.  
  1204.     o CLSET_UserLines(<username>,<zeilenzahl>)
  1205.  
  1206.        Setzt die Zeilenzahl-Einstellung des Users.
  1207.  
  1208.         Parameter:
  1209.  
  1210.          username   - Username des Users
  1211.          zeilenzahl - Zeilenzahl des Users
  1212.  
  1213.  
  1214.     o CLSET_UserProtocol(<username>,<protokoll>)
  1215.  
  1216.        Setzt das Übertragungsprotokoll.
  1217.  
  1218.         Parameter:
  1219.  
  1220.          username - Username des Users
  1221.          protokoll- Übertragungsprotokoll (Default: "ZMODEM")
  1222.  
  1223.  
  1224.     o CLSET_UserMaxKB(<username>,<maxkb>)
  1225.  
  1226.        Setzt das maximale Haltevolumen in Kilobyte für den Cruncher im
  1227.        Postfach des Users.
  1228.  
  1229.         Parameter:
  1230.  
  1231.          username - Username des Users
  1232.          maxkb    - Maximalvolumen
  1233.  
  1234.  
  1235.     o CLSET_UserMaxDays(<username>,<maxdays>)
  1236.  
  1237.        Setzt die maximale Haltezeit in Tagen für den Cruncher im Postfach
  1238.        des Users.
  1239.  
  1240.         Parameter:
  1241.  
  1242.          username - Username des Users
  1243.          maxdays  - maximale Haltezeit
  1244.  
  1245.  
  1246.     o CLSET_UserUploads(<username>,<uploads>)
  1247.  
  1248.        Setzt die Uploads des Users in Kilobyte.
  1249.  
  1250.         Parameter:
  1251.  
  1252.          username - Username des Users
  1253.          uploads  - Uploads
  1254.  
  1255.  
  1256.     o CLSET_UserDownloads(<username>,<downloads>)
  1257.  
  1258.        Setzt die Downloads des Users in Kilobyte.
  1259.  
  1260.         Parameter:
  1261.  
  1262.          username - Username des Users
  1263.          downloads- Downloads
  1264.  
  1265.  
  1266.     o CLSET_UserFreeFiles(<username>,<freefiles>)
  1267.  
  1268.        Setzt die freien Files des Users.
  1269.  
  1270.         Parameter:
  1271.  
  1272.          username - Username des Users
  1273.          freefiles- Anzahl der freien Files.
  1274.  
  1275.  
  1276.     o CLSET_UserFreeKByte(<username>,<freekbyte>)
  1277.  
  1278.        Setzt den Downloadfreiraum des Users.
  1279.  
  1280.         Parameter:
  1281.  
  1282.          username - Username des Users
  1283.          freekbyte- Downloadfreiraum
  1284.  
  1285.  
  1286.     o CLSET_UserRate(<username>,<ratio>)
  1287.  
  1288.        Setzt die Up-/Downloadratio des Users.
  1289.  
  1290.         Parameter:
  1291.  
  1292.          username - Username des Users
  1293.          ratio    - Up-/Downloadratio (1:x)
  1294.  
  1295.  
  1296.  
  1297.  
  1298. 3.4 Befehle zum Lesen der Userflags
  1299. -----------------------------------
  1300.  
  1301.     Ist das jeweilige Flag gesetzt, liefern die Funktionen '1' zurück,
  1302.     ansonsten '0'.
  1303.  
  1304.  
  1305.     o CLIS_UserInvisible(<username>)
  1306.  
  1307.        Abfrage, ob der User unsichtbar ist.
  1308.  
  1309.  
  1310.     o CLIS_UserNetworkEnabled(<username>)
  1311.  
  1312.        Abfrage, ob der User netzberechtigt ist.
  1313.  
  1314.  
  1315.     o CLIS_UserAutoEntry(<username>)
  1316.  
  1317.        Abfrage, ob der User automatisch eingetragen wurde (unbearbeiteter
  1318.        Userantrag).
  1319.  
  1320.  
  1321.     o CLIS_UserAutoRemove(<username>)
  1322.  
  1323.        Abfrage, ob der User automatisch entfernt werden soll.
  1324.  
  1325.  
  1326.  
  1327.  
  1328. 3.5 Befehle zum Setzen der Userflags
  1329. ------------------------------------
  1330.  
  1331.     Bei den Funktionen dieses Abschnittes sind die zu übergebenden Parameter
  1332.     von Funktion zu Funktion identisch und haben folgenden Inhalt:
  1333.  
  1334.         Parameter:
  1335.  
  1336.          username  - Name des Users
  1337.          flag       - '0' bedeutet, das Flag wird gelöscht (FALSE)
  1338.                       '1' bedeutet, das Flag wird gesetzt (TRUE)
  1339.  
  1340.  
  1341.     o CLSET_UserInvisible(<username>,<flag>)
  1342.  
  1343.        Flag, ob der User unsichtbar ist.
  1344.  
  1345.  
  1346.     o CLSET_UserNetworkEnabled(<username>,<flag>)
  1347.  
  1348.        Flag, ob der User Netzberechtigung hat.
  1349.  
  1350.  
  1351.     o CLSET_UserAutoEntry(<username>,<flag>)
  1352.  
  1353.        Flag, ob der User automatisch eingetragen wurde.
  1354.  
  1355.  
  1356.     o CLSET_UserAutoRemove(<username>,<flag>)
  1357.  
  1358.        Flag, ob der User automatisch gelöscht wird.
  1359.  
  1360.  
  1361.  
  1362.  
  1363. 4. Befehle für Zugriff auf Systemdaten
  1364. --------------------------------------
  1365.  
  1366.     Allgemeine Anmerkungen:
  1367.     -----------------------
  1368.  
  1369.     Wenn versucht wird, auf ein nicht existentes System zuzugreifen, wird
  1370.     beim Lesen generell ein Leerstring zurückgegeben, beim Schreiben '0'.
  1371.  
  1372.  
  1373.  
  1374.  
  1375. 4.1 Allgemeine Befehle
  1376. ----------------------
  1377.  
  1378.     o CL_SystemSavelist()
  1379.  
  1380.        Wurde die Systemliste verändert, wird sie bei Aufruf dieser Funktion
  1381.        gespeichert.
  1382.  
  1383.  
  1384.     o CL_SystemNew(<systemname>)
  1385.  
  1386.        Erzeugt ein neues System mit dem Namen <systemname>. Danach sollten
  1387.        mit den CLSET_SystemX()-Befehlen (siehe Abschnitt 5.3) alle Daten
  1388.        ergänzt werden.
  1389.  
  1390.  
  1391.     o CL_SystemDelete(<systemname>)
  1392.  
  1393.         Das System <systemname> wird aus der Systemliste gelöscht.
  1394.  
  1395.  
  1396.     o CLGET_SystemNumberOf()
  1397.  
  1398.         Diese Funktion gibt die Anzahl aller eingetragenen Systeme zurück.
  1399.  
  1400.  
  1401.     o CLGET_SystemName(<index>)
  1402.  
  1403.         Nach Aufruf gibt die Funktion den Namen des Systems mit der Nummer
  1404.         <index> zurück.
  1405.  
  1406.         Beispiel:
  1407.  
  1408.          anzahl=CLGET_SystemNumberOf()   /* Anzahl der Systeme ermitteln */
  1409.  
  1410.          do x=1 to anzahl
  1411.             system.x=CLGET_SystemName(x)
  1412.             end
  1413.  
  1414.  
  1415.     o  CLIS_SystemExists(<systemname>)
  1416.  
  1417.         Liefert '1', wenn das System <systemname> in der Systemliste einge-
  1418.         tragen ist, ansonsten '0'.
  1419.  
  1420.  
  1421.  
  1422.  
  1423. 4.2 Befehle zum Auslesen der Systemdaten
  1424. ----------------------------------------
  1425.  
  1426.  
  1427.     o CLGET_SystemDomain(<systemname>)
  1428.  
  1429.         Diese Funktion gibt die Domain eines eingetragenen Systems zurück.
  1430.  
  1431.  
  1432.     o CLGET_SystemRoute(<systemname>)
  1433.  
  1434.         Diese Funktion liefert das Routesystem von <systemname>. Bei nicht
  1435.         existentem System <systemname> oder bei aktiviertem PathAlias-/Do-
  1436.         mainrouting wird ein Leerstring zurückgeliefert.
  1437.  
  1438.          Beispiel:
  1439.  
  1440.           route=CLGET_SystemRoute(systemname)
  1441.           if route='' then do
  1442.               if ~CLIS_SystemExists(systemname) then
  1443.                   say 'Dieses System ist nicht eingetragen!'
  1444.               else
  1445.                   say 'Mail wird per PathAlias/Domainrouting geroutet!'
  1446.               end
  1447.  
  1448.  
  1449.     o CLGET_SystemNet(<systemname>)
  1450.  
  1451.        Liefert den Netznamen vom System <systemname> im Klartext (JANUS,
  1452.        ZERBERUS, UUCP oder FIDO).
  1453.  
  1454.  
  1455.     o CLGET_SystemProtocol(<systemname>)
  1456.  
  1457.        Liefert den Namen des für <systemname> eingestellten Transferproto-
  1458.        kolls im Klartext.
  1459.  
  1460.  
  1461.     o CLGET_SystemPackerIn(<systemname>)
  1462.  
  1463.        Liefert den Packer der von <systemname> eingehenden Puffer im Klar-
  1464.        text.
  1465.  
  1466.  
  1467.     o CLGET_SystemPackerOut(<systemname>)
  1468.  
  1469.        Liefert den Packer der an <systemname> ausgehenden Puffer im Klar-
  1470.        text.
  1471.  
  1472.  
  1473.     o CLGET_SystemGroup(<systemname>,<gruppennr>)
  1474.  
  1475.        Liefert '1', wenn das System <systemname> in die Gruppe mit der Num-
  1476.        mer <gruppennr> eingetragen ist, ansonsten '0'.
  1477.  
  1478.  
  1479.     o CLGET_SystemPointuser(<systemname>)
  1480.  
  1481.        Falls es sich bei dem System um einen Point handelt, wird der Name
  1482.        des Pointusers zurückgegeben, ansonsten ein Leerstring.
  1483.  
  1484.  
  1485.     o CLGET_SystemTelephone(<systemname>)
  1486.  
  1487.        Diese Funktion gibt die Telefonnummer des Systems <systemname> zu-
  1488.        rück.
  1489.  
  1490.         Beispiel:
  1491.  
  1492.          /* Einlesen der einzelnen Telefonnummern eines Systems in eine
  1493.             STEM-Variable                                                */
  1494.  
  1495.          string=translate(CLGET_SystemTelephone(system),' ','|')
  1496.          if string~='' then do
  1497.              do x=1 to words(string)
  1498.                  telefon.x=word(string,x)
  1499.                  end
  1500.              end
  1501.  
  1502.  
  1503.     o CLGET_SystemPriority(<systemname>)
  1504.  
  1505.        Diese Funktion gibt die Priorität des Systems <systemname> zurück.
  1506.  
  1507.  
  1508.     o CLGET_SystemLastCall(<systemname>)
  1509.  
  1510.        Liefert das Datum des letzten Anrufs vom System <systemname> im For-
  1511.        mat 'DD.MM.YYYY HH:MM:SS'.
  1512.  
  1513.  
  1514.     o CLIS_SystemAutoEntry(<systemname>)
  1515.  
  1516.         Liefert den Rückgabewert '1', wenn das System die Berechtigung zum
  1517.         Autoeintrag neuer Brett hat, ansonsten '0'.
  1518.  
  1519.  
  1520.     o CLIS_SystemMapsAccess(<systemname>)
  1521.  
  1522.         Liefert den Rückgabewert '1', wenn das System Zugriff auf Maps
  1523.         hat, ansonsten '0'.
  1524.  
  1525.  
  1526.  
  1527.  
  1528. 4.3 Befehle zum Setzen der Systemdaten
  1529. --------------------------------------
  1530.  
  1531.     Bei Erfolg wird generell '1' zurückgegeben, bei Mißerfolg '0'.
  1532.  
  1533.  
  1534.     o CLSET_SystemPassword(<systemname>,<passwort>)
  1535.  
  1536.        Trägt für das System das Passwort <passwort> ein.
  1537.  
  1538.  
  1539.     o CLSET_SystemDomain(<systemname>,<domain>)
  1540.  
  1541.        Trägt für das System die Domain <domain> ein.
  1542.  
  1543.  
  1544.     o CLSET_SystemRoute(<systemname>,<routesystem>)
  1545.  
  1546.        Trägt für das System das Routesystem <routesystem> ein und schaltet
  1547.        ein evt. eingeschaltetes PathAlias/Domainrouting ab.
  1548.  
  1549.  
  1550.     o CLSET_SystemNet(<systemname>,<netzname>)
  1551.  
  1552.        Setzt den Netznamen des Systems (Default "JANUS").
  1553.  
  1554.  
  1555.     o CLSET_SystemProtocol(<systemname>,<protokoll>)
  1556.  
  1557.        Setzt das Transferprotokoll des Systems (Default "ZMODEM").
  1558.  
  1559.  
  1560.     o CLSET_SystemPackerIn(<systemname>,<packer>)
  1561.  
  1562.        Setzt den Packer für eingehende Puffer vom System (Default "LHA").
  1563.  
  1564.  
  1565.     o CLSET_SystemPackerOut(<systemname>,<packer>)
  1566.  
  1567.        Setzt den Packer für ausgehende Puffer an das System (Default "LHA").
  1568.  
  1569.  
  1570.     o CLSET_SystemGroup(<systemname>,<gruppennr> [,<flag>])
  1571.  
  1572.        Trägt das System in eine Gruppe ein.
  1573.  
  1574.         Parameter:
  1575.  
  1576.          systemname  - Name des Systems
  1577.          gruppennr   - Nummer der Gruppe
  1578.          flag        - Optionaler Parameter; ist es "0", wird das System
  1579.                        aus der Gruppe ausgetragen, ist es "1" oder wird
  1580.                        weggelassen, wird das System in die Gruppe einge-
  1581.                        tragen.
  1582.  
  1583.  
  1584.     o CLSET_SystemPointuser(<systemname>,<username>)
  1585.  
  1586.        Setzt einen Pointuser für das System.
  1587.  
  1588.         Parameter:
  1589.  
  1590.          systemname  - Name des Systems
  1591.          username    - Pointuser. Wird hier ein Leerstring übergeben,
  1592.                        wird die Verknüpfung gelöscht und das System
  1593.                        nicht weiter als Point betrachtet.
  1594.  
  1595.  
  1596.     o CLSET_SystemTelephone(<systemname>,<telefon>)
  1597.  
  1598.        Setzt die Telefonnummer des Systems.
  1599.  
  1600.         Parameter:
  1601.  
  1602.          systemname  - Name des Systems
  1603.          telefon     - String mit einer oder mehreren Telefonnummern,
  1604.                        bei mehreren durch '|' getrennt
  1605.  
  1606.         Beispiel:
  1607.  
  1608.          if zaehler>1 then do
  1609.              do x=1 to zaehler-1     /* Mehrere Nummern aneinanderhängen */
  1610.                  telefon=nummer.x'|'
  1611.                  end
  1612.              end
  1613.          telefon=telefon||nummer.zaehler /* Nur ein Port bzw. der letzte */
  1614.          call CLSET_SystemTelephone(system,telefon)
  1615.  
  1616.  
  1617.     o CLSET_SystemPriority(<systemname>,<priorität>)
  1618.  
  1619.        Setzt die Priorität des Systems.
  1620.  
  1621.         Parameter:
  1622.  
  1623.          systemname  - Name des Systems
  1624.          priorität   - Priorität des Systems (0<=x<=99)
  1625.  
  1626.  
  1627.     o CLSET_SystemAutoEntry(<systemname>,<flag>)
  1628.  
  1629.        Setzt die Berechtigung zum Autoeintrag von Brettern.
  1630.  
  1631.         Parameter:
  1632.  
  1633.          systemname  - Name des Systems
  1634.          flag        - '1' erlaubt Autoeintrag
  1635.                        '0' verweigert Autoeintrag
  1636.  
  1637.  
  1638.     o CLSET_SystemMapsAccess(<systemname>,<flag>)
  1639.  
  1640.        Setzt die Berechtigung zum Zugriff auf Maps.
  1641.  
  1642.         Parameter:
  1643.  
  1644.          systemname  - Name des Systems
  1645.          flag        - '1' erlaubt Mapszugriff
  1646.                        '0' verweigert Mapszugriff
  1647.  
  1648.  
  1649.  
  1650.  
  1651. 5. Funktionen für Onlinebefehle
  1652. -------------------------------
  1653.  
  1654.     Allgemeine Anmerkungen:
  1655.     -----------------------
  1656.  
  1657.     Alle CLONL_X()-Befehle liefern bei Erfolg '1' und bei Mißerfolg '0' zu-
  1658.     rück. Es sollte zumindest bei ersten Aufruf überprüft werden, ob eine
  1659.     '1' zurückgegeben wurde, damit man weiß, ob das ANSI-System korrekt ini-
  1660.     tialisiert wurde.
  1661.  
  1662.      Beispiel:
  1663.  
  1664.       if ~CLONL_ClearScreen() then do
  1665.           say "Can't init ANSI-System!"
  1666.           exit 10
  1667.           end
  1668.  
  1669.  
  1670.     o CL_Edit(<filename> [,<flag>])
  1671.  
  1672.        Ruft den Editor auf.
  1673.  
  1674.         Parameter:
  1675.  
  1676.          filename    - Pfad und Name der Datei <filename>
  1677.          online      - Optionaler Parameter; ist er angegeben, wird
  1678.                        der Online-Editor anstelle des Offline-Editors
  1679.                        benutzt.
  1680.  
  1681.         Beispiel:
  1682.  
  1683.          call CL_Edit('T:test',) /* Online-Editor benutzen */
  1684.  
  1685.  
  1686.     o CLONL_GotoXY(<x>,<y>)
  1687.  
  1688.         Setzt den Cursor auf die Position x,y.
  1689.  
  1690.         Parameter:
  1691.  
  1692.          x - Nummer der Spalte
  1693.          y - Nummer der Zeile
  1694.  
  1695.         Beispiel:
  1696.  
  1697.          call CLONL_GotoXY(1,1)  /* Cursor in die linke obere Ecke */
  1698.  
  1699.  
  1700.     o CLONL_Normal()
  1701.  
  1702.        Schaltet die Textausgabe auf ANSI-Style "Normal" zurück. Das Resultat
  1703.        ist von Terminal zu Terminal verschieden; üblicherweise ist es Schrift-
  1704.        farbe weiß, Hintergrundfarbe Schwarz, kein Style.
  1705.  
  1706.     o CLONL_DeleteEOL()
  1707.  
  1708.        Per ANSI-Steuersequenz wird von der aktuellen Cursorposition bis zum
  1709.        Ende der Zeile alles gelöscht.
  1710.  
  1711.  
  1712.     o CLONL_DeleteLine()
  1713.  
  1714.        Per ANSI-Steuersequenz wird die aktuelle Zeile vollständig gelöscht,
  1715.        nachfolgende Zeilen rücken auf.
  1716.  
  1717.  
  1718.     o CLONL_InsertLine()
  1719.  
  1720.        Per ANSI-Steuersequenz wird an der aktuellen Position des Cursors eine
  1721.        Zeile eingefügt und die nachfolgende Zeilen um eine Zeile nach unten
  1722.        verschoben.
  1723.  
  1724.  
  1725.     o CLONL_BlueMode()
  1726.  
  1727.        Es wird auf den 'Blue'-Mode umgestellt. Hierbei handelt es sich um einen
  1728.        besonders markanten Eingabe- und Titelmodus.
  1729.  
  1730.  
  1731.     o CLONL_Color(<color>,<bcolor>,<style>)
  1732.  
  1733.        Die Cursorfarbe wird zur weiteren Ausgabe umgestellt, ein Schriftstil
  1734.        wird benutzt.
  1735.  
  1736.         Parameter:
  1737.  
  1738.           color - Schriftfarbe (BLACK, RED, GREEN, YELLOW, BLUE, PINK, CYAN
  1739.                                 oder WHITE)
  1740.           bcolor- Hintergrundfarbe (BLACK, RED, GREEN, YELLOW, BLUE, PINK,
  1741.                                     CYAN oder WHITE)
  1742.           style - Schriftstil (NORMAL, BOLD, KURSIV, UNDERLINE oder INVERSE)
  1743.  
  1744.  
  1745.     o CLONL_BlueRead(<länge> [,<vorgabe>]
  1746.  
  1747.        Über eine blaue Eingabezeile wird ein String-Gadget simuliert. Exis-
  1748.        tiert eine Vorgabe, so steht diese bereits im Feld. Nach einer Bestä-
  1749.        tigung der Eingabe der 'Return'-Taste wird der Inhalt des Feldes zu-
  1750.        rückgegeben.
  1751.  
  1752.         Parameter:
  1753.  
  1754.          länge   - Länge der Eingabezeile in Zeichen
  1755.          vorgabe - Text, der als Default in der Eingabezeile stehen soll
  1756.  
  1757.  
  1758.     o CLONL_Wait()
  1759.  
  1760.        Es wird eine Meldung "<Bitte Taste drücken>" ausgegeben und auf einen
  1761.        Tastendruck gewartet. Wird eine '1' zurückgegeben, wurde eine Taste
  1762.        gedrückt. Bei einem Rückgabewert '0' sollte sich das Programm auf jeden
  1763.        Fall vollständig beenden, da der User dann CTRL-C/Q/X gedrückt hat oder
  1764.        der Carrier verloren wurde.
  1765.  
  1766.  
  1767.     o CLONL_DoCommand(<befehl> [,<parameter>])
  1768.  
  1769.        Ruft einen in den Shellprefs eingetragenen Onlinebefehl auf, so, als
  1770.        würde der User den Befehl selbst aufrufen.
  1771.  
  1772.         Parameter:
  1773.  
  1774.          befehl      - Onlinebefehl
  1775.          parameter   - Optionaler Parameter; beinhaltet einen String, der an
  1776.                        den Befehl als Parameter übergeben wird.
  1777.  
  1778.     o CLONL_SendMail(<absender>,<empfänger>,<betreff>,<filename>)
  1779.  
  1780.         Verschickt eine Textnachricht. Siehe auch CL_SendMailFull().
  1781.  
  1782.          Parameter:
  1783.  
  1784.           absender   - Absender der Nachricht, System- und Domainangabe
  1785.                        werden ersetzt.
  1786.           empfänger  - Empfänger der Nachricht
  1787.           betreff    - Betreff der Nachricht
  1788.           filename   - Pfad und Name des zu verschickenden Files.
  1789.  
  1790.  
  1791.     o CLGET_Key()
  1792.  
  1793.        Wartet auf einen Tastendruck und gibt sie zurück. Ein String '-1'
  1794.        bedeutet, daß ein Abbruch stattgefunden hat oder der Carrier verloren
  1795.        wurde; in beiden Fällen sollte sich das ARexx-Skript umgehend selbst
  1796.        beenden.
  1797.  
  1798.        Bei gedrückten Cursortasten werden folgende Werte zurückgegeben:
  1799.  
  1800.         Cursor nach oben  : "-UP"
  1801.         Cursor nach unten : "-DOWN"
  1802.         Cursor nach links : "-LEFT"
  1803.         Cursor nach rechts: "-RIGHT"
  1804.  
  1805.         Beispiel:
  1806.  
  1807.           menu:
  1808.              say '[1] Nachricht editieren'
  1809.              say '[2] Nachricht verschicken'
  1810.              say '[E] Programm verlassen'
  1811.              say ''
  1812.           loop:
  1813.              taste=CLGET_Key()
  1814.              select
  1815.                  when taste='1' then call edit
  1816.                  when taste='2' then call send
  1817.                  when (taste='E')|(taste='-1') then exit
  1818.                  otherwise call loop
  1819.                  end
  1820.              call menu
  1821.  
  1822.  
  1823.     o CLONL_Transfer(<filename> [,<sendfilename>]
  1824.  
  1825.        Verschickt ein File an den User. Bei dieser Funktion kann es Probleme
  1826.        geben, wenn sie in ihrem System XPR-Treiber-Protokolle anstelle der
  1827.        Connectline Built-in-Übertragungsprotokolle verwenden.
  1828.  
  1829.         Parameter:
  1830.  
  1831.          filename    - Name des zu übertragenden Files
  1832.          sendfilename- Optionaler Parameter; ist er angegeben, wird das File
  1833.                        mit diesem Namen verschickt.
  1834.  
  1835.         Beispiel:
  1836.  
  1837.         if ~CLONL_Transfer('JANUS:'||point||'/'||point||'.PRE') then
  1838.             say 'Transfer fehlgeschlagen!'
  1839.         else
  1840.             say 'Transfer erfolgreich!'
  1841.  
  1842.  
  1843.     o CLONL_Receive(<port>)
  1844.  
  1845.        Empfängt ein File auf Port <port> und gibt den kompletten Pfad zurück,
  1846.        bzw. einen Leerstring bei fehlgeschlagener Übertragung. Werden mehrere
  1847.        Files empfangen, so werden die Filenamen durch Leerzeichen getrennt in
  1848.        einem String zurückgegeben. Die empfangenen Files sollten auf jeden
  1849.        Fall entsorgt werden, da sie sonst vom Onlinebefehl SENDEN als
  1850.        Bimodem-Übertragungsfiles behandelt werden.
  1851.  
  1852.         Beispiel:
  1853.  
  1854.          string=CLONL_Receive(port)
  1855.          if string~='' then do
  1856.              do x=1 to words(string)
  1857.                  rename(word(string,x),'T:'||word(string,words(translate(string,' ','/'))))
  1858.                  end
  1859.              end
  1860.          else say 'Übertragung fehlgeschlagen!'
  1861.  
  1862.  
  1863.     o CLIS_KeyPressed()
  1864.  
  1865.        Liefert '1', wenn eine Taste gedrückt wurde, ansonsten '0'.
  1866.  
  1867.  
  1868.     o CLONL_ShortMenu(<eintrag> {,<einträge>})
  1869.  
  1870.        Es wird ein kleines einzeiliges Menü aus den Einträgen aufgebaut.
  1871.        Die maximale Anzahl der Parameter liegt bei 20. Der erste Buch-
  1872.        stabe eines jeden Eintrages wird als Hotkey verwendet. Der Hot-
  1873.        key des ausgewählten Eintrages wird zurückgegeben.
  1874.  
  1875.  
  1876.     o CLONL_ShortMenuVertical(<eintrag> {,<einträge>})
  1877.  
  1878.        Es wird ein kleines vertikales Menü aus den Einträgen aufgebaut.
  1879.        Die maximale Anzahl der Parameter liegt bei 20. Der erste Buch-
  1880.        stabe eines jeden Eintrages wird als Hotkey verwendet. Der Hot-
  1881.        key des ausgewählten Eintrages wird zurückgegeben.
  1882.  
  1883.  
  1884.     o CLONL_SetObscure(<flag>)
  1885.  
  1886.        Setzt den Obscure-Modus. Ist das Flag gesetzt, ist ein Mitlesen
  1887.        auf der Console nicht mehr möglich.
  1888.  
  1889.  
  1890.     o CLONL_ClearScreen()
  1891.  
  1892.        Per ANSI-Steuersequenz wird der Bildschirm gelöscht.
  1893.  
  1894.  
  1895.     o CLONL_PrintFile(<filename>)
  1896.  
  1897.        Gibt das File <filename> als Text aus.
  1898.  
  1899.  
  1900.  
  1901.  
  1902. 6. Befehle für Zugriffe auf Nachrichten
  1903. ---------------------------------------
  1904.  
  1905.  
  1906. 6.1 Befehle zum Lesen von Nachrichtendaten
  1907. ------------------------------------------
  1908.  
  1909.  
  1910.     o CLGET_MsgNumberOf(<brettname>)
  1911.  
  1912.        Liefert die Anzahl der Nachrichten im Brett <brettname> zurück.
  1913.        Existiert das Brett nicht oder konnte der Index nicht gelockt wer-
  1914.        den, wird eine '-1' zurückgegeben.
  1915.  
  1916.  
  1917.     o CLGET_MsgSubject(<brettname>,<nr>)
  1918.  
  1919.        Liefert den Betreff von Nachricht Nr. <nr> im Brett <brettname>.
  1920.  
  1921.  
  1922.     o CLGET_MsgFilename(<brettname>,<nr>)
  1923.  
  1924.        Liefert den Filenamen von Nachricht Nr. <nr> im Brett <brettname>.
  1925.  
  1926.  
  1927.     o CLGET_MsgShortComment(<brettname>,<nr>)
  1928.  
  1929.        Liefert den Kurzkommentar von Nachricht Nr. <nr> im Brett <brettname>.
  1930.  
  1931.  
  1932.     o CLGET_MsgFrom(<brettname>,<nr>)
  1933.  
  1934.        Liefert den Absender von Nachricht Nr. <nr> im Brett <brettname>.
  1935.  
  1936.  
  1937.     o CLGET_MsgMsgID(<brettname>,<nr>)
  1938.  
  1939.        Liefert die MsgID von Nachricht Nr. <nr> im Brett <brettname>.
  1940.  
  1941.  
  1942.     o CLGET_MsgReadcount(<brettname>,<nr>)
  1943.  
  1944.        Liefert den Zugriffszähler von Nachricht Nr. <nr> im Brett <brettname>.
  1945.  
  1946.  
  1947.     o CLGET_MsgIncomeDate(<brettname>,<nr>)
  1948.  
  1949.        Liefert das Einsortierdatum von Nachricht Nr. <nr> im Brett <brett-
  1950.        name>.
  1951.  
  1952.  
  1953.     o CLGET_MsgSendDate(<brettname>,<nr>)
  1954.  
  1955.        Liefert das Absendedatum von Nachricht Nr. <nr> im Brett <brettname>.
  1956.  
  1957.  
  1958.     o CLIS_MsgBinary(<brettname>,<nr>)
  1959.  
  1960.        Liefert '1', wenn die Nachricht Nr. <nr> im Brett <brettname> ein File
  1961.        ist, ansonsten '0'.
  1962.  
  1963.  
  1964.     o CLGET_MsgBody(<brettname>,<nr>,<filename>)
  1965.  
  1966.        Diese Funktion lagert den Body der Nachricht Nr. <nr> im Brett <brett-
  1967.        name> mit dem Filenamen <filename> aus.
  1968.  
  1969.  
  1970.     o CLGET_MsgBodyLength(<brettname>,<nr>)
  1971.  
  1972.        Diese Funktion gibt die Länge des Mailbodies der Nachricht Nr. <nr>
  1973.        im Brett <brettname> zurück.
  1974.  
  1975.  
  1976.     o CLGET_MsgComment(<brettname>,<nr>,<filename>)
  1977.  
  1978.        Diese Funktion dient dem Auslagern des langen Kommentars (KOM:) der
  1979.        Nachricht Nr. <nr> des Brettes <brettname> unter dem Filename <file-
  1980.        name>.
  1981.  
  1982.  
  1983.     o CLGET_MsgCommentLength(<brettname>,<nr>)
  1984.  
  1985.        Diese Funktion gibt die Länge des langen Kommentars (KOM:) der Nach-
  1986.        richt Nr. <nr> des Brettes <brettname> zurück.
  1987.  
  1988.  
  1989.  
  1990.  
  1991. 6.2 Befehle zum Setzen von Nachrichtendaten
  1992. -------------------------------------------
  1993.  
  1994.  
  1995.     o CLSET_MsgSubject(<brettname>,<nr>,<betreff>)
  1996.  
  1997.        Setzt den Betreff von Nachricht Nr. <nr> im Brett <brettname> auf
  1998.        <betreff>.
  1999.  
  2000.  
  2001.     o CLSET_MsgShortComment(<brettname>,<nr>,<kommentar>)
  2002.  
  2003.        Setzt den Kurzkommentar von Nachricht Nr. <nr> im Brett <brettname>
  2004.        auf <kommentar>.
  2005.  
  2006.  
  2007.     o CLSET_MsgDelete(<brettname>,<nr>)
  2008.  
  2009.        Setzt das Löschflag von Nachricht Nr. <nr> im Brett <brettname>. Die
  2010.        Nachricht wird beim nächsten Crunchen des Brettes vollständig ent-
  2011.        fernt.
  2012.  
  2013.  
  2014.  
  2015.  
  2016. 7. Befehle für Zugriffe auf die Ports
  2017. -------------------------------------
  2018.  
  2019.     Allgemeine Anmerkungen:
  2020.     -----------------------
  2021.  
  2022.     Diese Funktionen benötigen als Übergabeparameter die Nummer des Ports,
  2023.     von welchem aus das Skript gestartet wurde. Diese erhalten sie entweder
  2024.     beim Aufruf als Parameter oder über den ARexx-Port des CL-PORTx.
  2025.  
  2026.     Ist niemand eingeloggt, geben die Funktionen - solange nicht anders ver-
  2027.     merkt - einen Leerstring zurück.
  2028.  
  2029.  
  2030.     o CLGET_PortUsername(<port>)
  2031.  
  2032.        Liefert den Usernamen des eingeloggten Users.
  2033.  
  2034.  
  2035.     o CLGET_PortCurrentboard(<port>)
  2036.  
  2037.        Liefert den Namen des Brettes, in welchem sich der User gerade aufhält.
  2038.  
  2039.  
  2040.     o CLGET_PortTerminal(<port>)
  2041.  
  2042.        Liefert die aktuelle Terminaleinstellung des Users im Klartext ("ANSI",
  2043.        "VT100" oder "TTY").
  2044.  
  2045.  
  2046.     o CLGET_PortLines(<port>)
  2047.  
  2048.        Liefert die aktuelle maximale Zeilenzahl des Users. Ist niemand ein-
  2049.        geloggt, wird eine '-1' zurückgegeben.
  2050.  
  2051.  
  2052.  
  2053.  
  2054. 8. Befehle zum Auslesen von Defaultpfaden
  2055. ------------------------------------------
  2056.  
  2057.     o CLGET_PathJANUS()
  2058.  
  2059.        Liefert den in den JANUS-Prefs eingestellten Pfad des JANUS-Verzeich-
  2060.        nisses zurück. Beim Aufruf dieser Funktion muß Connectline laufen.
  2061.  
  2062.         Beispiel:
  2063.  
  2064.          /* Abfragen, ob Connectline zur Zeit läuft */
  2065.  
  2066.          if ~show('P','CL-SERVER') then do
  2067.              say 'Bitte erst Connectline 5.0 starten!'
  2068.              exit
  2069.              end
  2070.          JANUS=CLGET_PathJANUS()
  2071.  
  2072.  
  2073.     o CLGET_PathZERBERUS()
  2074.  
  2075.        Liefert den in den Z38-Prefs eingestellten Pfad des ZERBERUS-Ver-
  2076.        zeichnisses zurück. Beim Aufruf dieser Funktion muß Connectline laufen.
  2077.  
  2078.         Beispiel:
  2079.  
  2080.          /* Abfragen, ob Connectline zur Zeit läuft */
  2081.  
  2082.          if ~show('P','CL-SERVER') then do
  2083.              say 'Bitte erst Connectline 5.0 starten!'
  2084.              exit
  2085.              end
  2086.          ZERBERUS=CLGET_PathZERBERUS()
  2087.  
  2088.  
  2089.     o CLGET_PathSpool()
  2090.  
  2091.        Liefert den Pfad des JANUS-Spoolverzeichnisses zurück.
  2092.  
  2093.  
  2094.     o CLGET_PathTrash()
  2095.  
  2096.        Liefert den Pfad des JANUS-Trashverzeichnisses zurück.
  2097.  
  2098.  
  2099.     o CLGET_PathBoard()
  2100.  
  2101.        Liefert den in der Hauptkonfiguration eingestellten Defaultpfad der
  2102.        Bretter zurück.
  2103.  
  2104.  
  2105.     o CLGET_PathUser()
  2106.  
  2107.        Liefert den in der Hauptkonfiguration eingestellten Defaultpfad der
  2108.        Userverzeichnisse zurück.
  2109.  
  2110.  
  2111. Bugreports und Vorschläge bitte ins Brett /CLC/BETA oder per Mail an
  2112. merlin@sixpack.pfalz.de.
  2113.  
  2114. --
  2115. Changes:
  2116.  
  2117. 1.0  - Entwicklung (bis 1.2) (7.11.1995)
  2118. 1.3  - Erste Veröffentlichung im Connectline Supportnetz.
  2119. 1.4  - CLSET_/GET_BoardHoldKB/HoldDays() neu dazu. (8.11.1995)
  2120.      - CLGET_BoardLastWrite() neu dazu.
  2121.      - CL_BoardNew() neu dazu.
  2122.      - CL_BoardDelete() neu dazu.
  2123.      - CLGET/SET__BoardMaxNet() neu dazu.
  2124.      - CLIS/SET__BoardNoScan() neu dazu.
  2125.      - CLGET_BoardExists() heißt nun CLIS_BoardExits().
  2126.      - alle Libraries werden sauber geschlossen.
  2127.      - CLIS/SET_BoardGroup() neu dazu.
  2128. 1.5  - Userfunktionen (9.11.95)
  2129. 1.6  - CLIS/SET_User-Flags() neu dazu (Kap. 3.3/3.4).
  2130.      - CLGET_SystemName()/SystemAddress()/GroupName() neu dazu.
  2131.      - CL_Edit() neu dazu.
  2132.      - CLGET_BoardPrefix() viel toleranter.
  2133. 1.7  - Systemfunktionen (10.11.95)
  2134.      - CLIS_UserPoint() neu dazu.
  2135.      - Unberechtigte Zugriffe führen nicht mehr zu Error 100.
  2136. 1.8  - Online Befehle integriert (10.11.95)
  2137. 1.9  - CLGET_BoardNext()/Previous() hatte jeweils ein Brett zertrashed.
  2138.        (Und zwar immer das letzte, das zur Terminierung gedacht war).
  2139. 1.10 - CL_SendMailFull() neu dazu. (11.11.95)
  2140.      - Schreibkorrektur Protocoll->Protocol.
  2141.      - CLGET/IS/SET_Msg...() Befehle neu dazu.
  2142.      - CLGET_Port...() Befehle neu dazu.
  2143.      - Schreibkorrektur Telefon->Telephone.
  2144. 1.11 - Schreibfehler in Doku, jetzt CLGET_BoardBoxList() (war CLGET_BoxList())
  2145.      - Schreibfehler in Doku, jetzt CLGET/SET_BoardHoldKB/Days().
  2146. 1.12 - Returncodes der CLSET/IS_User...() Befehle korrekt.(15.11.95)
  2147.      - CLGET_BoardNext() lieferte bei "" Trash.
  2148.      - CLONL_...() Befehle ein wenig optimiert.
  2149.      - CLONL_Continue() ist rausgeflogen. Ist bei Con Ausgaben unnötig.
  2150. 1.13 - CLGET_UserPointname() neu dazu. (16.11.95)
  2151.      - CLGET_BoardPrefix() liefert immer gültige Bretter. (17.11.95)
  2152.      - CLONL_Receive() neu dazu.
  2153. 1.14 - CL_AddLog() neu dazu. (19.11.95)
  2154. 1.15 - CL_GetText() neu dazu. (20.11.95)
  2155.      - CLGET_BoardList() neu dazu.
  2156.      - CLGET_BoardBoxList() nun Ergebnis in Array. (21.11.95)
  2157.      - CLGET_Path...() neu dazu.
  2158. 1.16 - CLONL_Transfer() liefert bei fehlgeschlagenem Transfer nun auch
  2159.        rexxFalse zurück.
  2160.      - CL_PutStr() gibt Text aus, ohne LF am Ende.
  2161. 1.17 - CLGET/IS_SystemMapsAccess() neu dazu. (26.11.95)
  2162.      - CLGET/IS_SystemAutoentry() neu dazu.
  2163. 1.18 - CLGET_Msg...Length() neu dazu.
  2164. 1.19 - Bugfixes. (27.11.95)
  2165. 1.20 - CL_LogDelete()/CL_LogRename() neu dazu. (3.12.95)
  2166.      - CL_AddLog() in CL_LogAdd() umbennant (Saubere Struktur)
  2167.      - CLGET_FileRequest() neu dazu.
  2168. 1.21 - CLGET_FrontScreenName() neu hinzu. (4.12.95)
  2169. 1.22 - CLGET_PathSpool() neu dazu. (14.12.95)
  2170.      - CLGET_PathTrash() neu dazu.
  2171.      - CLGET_TransferList( <STEM> ) neu dazu.
  2172.      - CLGET_PackerList( <STEM> ) neu dazu.
  2173.      - Kleiner Bug bei __UserLibInit() beseitigt.
  2174. 1.23 - Carriercheck bei CLONL_ShortMenu[Vertical]() korrigiert. (28.12.95)
  2175. 1.24 - CLGET_UserFreeKByte() neu dazu. (13.01.96)
  2176.        CLSET_UserFreeKByte() neu dazu.
  2177. 1.25 - CLONL_x()-Funktionen brachten u.U. die Shell zum Hängen. (04.02.96)
  2178.